package pers.xiaojun.boot.module.infra.api.file;

import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import pers.xiaojun.boot.common.biz.infra.file.FileConfigApi;
import pers.xiaojun.boot.common.biz.infra.file.dto.FileConfigRespDTO;
import pers.xiaojun.boot.common.util.JsonUtils;
import pers.xiaojun.boot.module.infra.dao.entity.FileConfigDO;
import pers.xiaojun.boot.module.infra.service.file.FileConfigService;

/**
 * 文件配置API实现类型
 *
 * @author xiaojun
 * @since 2025-11-15
 */
@Service
public class FileConfigApiImpl implements FileConfigApi {

    private final FileConfigService fileConfigService;

    public FileConfigApiImpl(@Lazy FileConfigService fileConfigService) {
        this.fileConfigService = fileConfigService;
    }


    @Override
    public FileConfigRespDTO getMasterFileConfig() {
        return BeanUtil.toBean(fileConfigService.getMaterFileConfig(), FileConfigRespDTO.class);
    }

    @Override
    public FileConfigRespDTO getFileConfigById(Long fileConfigId) {
        FileConfigDO config = fileConfigService.getFileConfigById(fileConfigId);
        FileConfigRespDTO configDTO = BeanUtil.toBean(config, FileConfigRespDTO.class);
        configDTO.setConfigJson(JsonUtils.toJson(config.getConfig()));
        return configDTO;
    }

}
